home *** CD-ROM | disk | FTP | other *** search
-
- Network Working Group R. Braden
- Request for Comments: 955 UCLA OAC
- September 1985
-
- Towards a Transport Service for
- Transaction Processing Applications
-
-
- STATUS OF THIS MEMO
-
- This RFC is concerned with the possible design of one or more new
- protocols for the ARPA-Internet, to support kinds of applications
- which are not well supported at present. The RFC is intended to spur
- discussion in the Internet research community towards the development
- of new protocols and/or concepts, in order to meet these unmet
- application requirements. It does not represent a standard, nor even
- a concrete protocol proposal. Distribution of this memo is
- unlimited.
-
- 1. INTRODUCTION
-
- The DoD Internet protocol suite includes two alternative transport
- service [1] protocols, TCP and UDP, which provide virtual circuit and
- datagram service, respectively [RFC-793, RFC-768]. These two
- protocols represent points in the space of possible transport service
- attributes which are quite "far apart". We want to examine an
- important class of applications, those which perform what is often
- called "transaction processing". We will see that the communication
- needs for these applications fall into the gap "between" TCP and UDP
- -- neither protocol is very appropriate.
-
- We will then characterize the attributes of a possible new
- transport-level protocol, appropriate for these ill-served
- transaction-processing applications.
-
- In writing this memo, the author had in mind several assumptions
- about Internet protocol development.
-
- * Assumption 1: The members of the Internet research community
- now understand a great deal about protocols, and given a list
- of consistent attributes we can probably generate a reasonable
- protocol to meet that specification.
-
- This is not to suggest that design of good protocols is easy.
- It does reflect an assumption (perhaps wrong) that the set of
- basic protocol techniques we have invented so far is sufficient
- to give a good solution for any point in the attribute space,
- and that we can forsee (at least in a general way) many of the
- consequences of particular protocol design choices.
-
-
-
-
- Braden [Page 1]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- * Assumption 2: We need to develop appropriate service
- requirements for a "transaction processing protocol".
-
- The classifications "virtual circuit" and "datagram"
- immediately define in our minds the most important attributes
- of TCP and UDP. We have no such immediate agreement about the
- services to be provided for transaction processing. The
- existing and proposed transaction-oriented protocols show a
- number of alternative choices [e.g., Cour81, BiNe84, Coop84,
- Cher85, Crow85, Gurw85, Mill85].
-
- Many of the ideas discussed here are not new. For example, Birrell
- and Nelson [BiNe84] and Watson [Wats81] have described
- transport-level protocols appropriate for transactions. Our purpose
- here is to urge the solution of this problem within the Internet
- protocol family.
-
- 2. TRANSACTION PROCESSING COMMUNICATIONS
-
- We begin by listing the characteristics of the communication patterns
- typical in "transaction processing" applications.
-
- * Unsymmetrical Model
-
- The two end points of the communication typically take
- different roles, generally called "client" and "server". This
- leads to an unsymmetrical communication pattern.
-
- For example, the client always initiates a communication
- sequence or "transaction". Furthermore, an important subclass
- of applications uses only a simple exchange of messages, a
- "request" to the server followed by a "reply" to the client.
-
- Other applications may require a continuing exchange of
- messages, a dialog or "conversation". For example, a request
- to read a file from a file server might result in a series of
- messages, one per file block, in reply. More complex patterns
- may occur.
-
- * Simplex Transfers
-
- Regardless of the pattern, it always consists of a series of
- SIMPLEX data transfers; at no time is it necessary to send data
- in both directions simultaneously.
-
-
-
-
-
- Braden [Page 2]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- * Short Duration
-
- Transaction communication sequences generally have short
- duration, typically 100's of milliseconds up to 10's of
- seconds, but never hours.
-
- * Low Delay
-
- Some applications require minimal communication delay.
-
- * Few Data Packets
-
- In many applications, the data to be sent can be compressed
- into one or a few IP packets. Applications which have been
- designed with LAN's in mind are typically very careful to
- minimize the number of data packets for each request/reply
- sequence.
-
- * Message Orientation
-
- The natural unit of data which is passed in a transaction is an
- entire message ("record"), not a stream of bytes.
-
- 3. EXAMPLE: NAME SERVERS
-
- To focus our ideas, we will now discuss several particular types of
- distributed applications which are of pressing concern to members of
- the Internet research community, and which require
- transaction-oriented communication.
-
- First, consider the name server/name resolver system [RFC-882,
- RFC-883] which is currently being introduced into the (research)
- Internet. Name servers must use TCP and/or UDP as their transport
- protocol. TCP is appropriate for the bulk transfers needed to update
- a name server's data base. For this case, reliability is essential,
- and virtual-circuit setup overhead is negligible compared to the data
- transfer itself. However, the choice of a transport protocol for the
- transaction traffic -- queries and responses -- is problematic.
-
- * TCP would provide reliable and flow-controlled transfer of
- arbitrary-sized queries and responses. However, TCP exacts a
- high cost as a result of its circuit setup and teardown phases.
-
- * UDP avoids the overhead of TCP connection setup. However, UDP
- has two potentially-serious problems -- (1) unreliable
- communication, so that packets may be lost, duplicated, and/or
-
-
-
- Braden [Page 3]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- reordered; and (2) the limitation of a data object
- (query/response) to the 548-byte maximum in a single UDP
- packet.
-
- At present, name servers are being operated using UDP for transaction
- communication. Note that name server requests have a special
- property, idempotency; as a result, lost, duplicated, or reordered
- queries do not prevent the name-server system from working. This
- would seem to favor the use of UDP.
-
- However, it seems quite likely that the defects of UDP will make it
- unusable for an increasing fraction of queries.
-
- * The average size of individual replies will certainly increase,
- as the more esoteric mail lookup features are used, as the host
- population explodes (resulting in a logarithmic increase in
- domain name sizes), and as the number of alternate acceptable
- answers increases. As a result, a single response will more
- often overflow a single UDP packet.
-
- * The average end-to-end reliability will decrease as some of the
- flakier paths of the Internet are brought into use by name
- resolvers.
-
- This will lead to a serious problem of choosing an appropriate
- retransmission timeout. A name resolver using UDP cannot
- distinguish packet loss in the Internet from queueing delay in
- the server. As a result, name servers we have seen have chosen
- long fixed timeouts (e.g., 30 seconds or more). This will
- result in long delays in name resolution when packets are lost.
-
- One might think that delays in name resolution might not be an
- issue since most name lookups are done by a mailer daemon.
- However, ARPANET experience with user mail interfaces has shown
- that it is always desirable to verify the correctness of each
- host name as the user enters the "To:" and "CC:" addresses for
- a message. Hence, delays due to lost UDP packets will be
- directly visible to users.
-
- More generally, the use of UDP violates sound communication system
- design in two important ways:
-
- * The name resolver/server applications have to provide timeouts
- and retransmissions to protect against "errors" (losses) in the
- communication system. This certainly violates network
- transparency, and requires the application to make decisions
- for which it is not well-equipped.
-
-
- Braden [Page 4]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- As a general design principle, it seems that (Inter-) network
- properties, especially bad properties, ought to a large extent
- to be hidden below the transport-service boundary [2].
-
- * The name resolver/server applications must know the maximum
- size of a UDP datagram.
-
- It is clearly wrong for an application program to contain
- knowledge of the number 576 or 548! This does not imply that
- there cannot be a limitation on the size of a message, but any
- such limitation should be imposed by the particular
- application-level protocol, not the transport or internetwork
- level.
-
- It seems that the TCP/UDP choice for name servers presents an ugly
- dilemma. We suggest that the solution should be a new
- transaction-oriented transport protocol with the following features:
-
- * Reliable ("at-least-once") Delivery of Data;
-
- * No Explicit Connection Setup or Teardown Phases;
-
- * Fragmentation and Reassembly of Messages;
-
- * Minimal Idle State in both Client and Server.
-
- 4. ANOTHER EXAMPLE: DISTRIBUTED OPERATING SYSTEMS
-
- Distributed operating systems represent another potential application
- for a transaction-oriented transport service. A number of examples
- of distributed operating systems have been built using high-speed
- local area networks (LAN's) for communication (e.g, Cronus, Locus,
- V-System). Typically, these systems use private communication
- protocols above the network layer, and the private transport-level
- protocol is carefully designed to minimize latency across the LAN.
- They make use of the inherent reliability of the LAN and of simple
- transactions using single-packet exchanges.
-
- Recently there have been efforts to extend these systems to operate
- across the Internet [Cher85, Shel85]. Since these are not "open"
- systems, there is no requirement that they use a standard transport
- protocol. However, the availability of a suitable transport protocol
- for transactions could considerably simplify development of future
- distributed systems.
-
- The essential requirement here seems to be packet economy. The same
-
-
-
- Braden [Page 5]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- minimal two-packet exchange used over the LAN should be possible
- across the Internet. This leads to two requirements for supporting
- distributed operating systems:
-
- * No Explicit Connection Setup or Teardown Phases;
-
- * Implicit ("piggy-backed") Acknowledgments Whenever Possible.
-
- This implies that the response packet will serve as an implicit
- acknowledgment to the request packet (when timing makes this
- possible). Similarly, a new request (for the same pair of
- addressable entities) would implicitly acknowledge the previous
- response, if it came soon enough.
-
- The nature of the application imposes two other requirements:
-
- * Reliable ("at-most-once"), Ordered Delivery
-
- However, it should be possible to relax the reliability to take
- advantage of special cases like an idempotent request.
-
- * Multicast Capability
-
- The transport service should mesh cleanly with the proposed
- Internet multicast facility, using host groups [ChDe85].
-
- 5. OBJECTIVES FOR A PROTOCOL
-
- We believe that it is possible to design a new transport protocol for
- the Internet which is suitable for a wide variety of
- transaction-oriented applications. Such a transport protocol would
- have the following attributes:
-
- * Reliable Delivery
-
- Data will be delivered reliably, i.e., exactly once, or the
- sender will be informed. The protocol must be able to handle
- loss, duplication, and reordering of request and response
- packets. In particular, old duplicate request packets must not
- cause erroneous actions.
-
- It should also be possible for the application programs to
- request that the reliability be relaxed for particular
- transactions. This would allow communication economies in the
- case of idempotent requests or of notification without reply.
-
-
-
-
- Braden [Page 6]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- * Minimum Number of Packets in Simple Cases
-
- In the simplest case (small messages, no packet losses, and the
- interval between requests and replies between the same pair of
- addressable entities shorter than applicable timeouts), a
- simple two-packet exchange should result.
-
- * No Explicit Connection Setup or Teardown Phases
-
- The protocol will not create virtual circuits, but will provide
- what is sometimes (confusingly) called "reliable datagram"
- service.
-
- However, in order to provide a minimum two-packet exchange,
- there must be some implicit state or "soft" virtual circuit
- between a pair of addressable entities. In recent discussions
- this has been dubbed a "conversation", to distinguish it from a
- connection.
-
- * Minimal Idle State
-
- When a server is not processing a transaction, there will be no
- state kept (except enough to recognize old duplicate packets
- and to suppress unneeded ACK packets).
-
- * Fragmentation/Reassembly of Large Messages
-
- There is a range of possible objectives here. The minimum
- requirement is that the application not have to know the number
- 576, 548, etc. For example, each application might establish
- its own "natural" upper limit on the size of a message, and
- always provide a buffer of that size [3].
-
- At the other extreme, the protocol might allow very large
- messages (e.g., a megabyte or more). In this case, the
- proposed protocol would, in the large-message limit, be
- performing the bulk data transfer function of TCP. It would be
- interesting to know whether this is possible, although it is
- not necessarily a requirement.
-
- The introduction of multi-packet messages leads to the complex
- issues of window sizes and flow control. The challenge is to
- handle these efficiently in the absence of connection setup.
-
- * Message Orientation
-
-
-
-
- Braden [Page 7]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- The basic unit of communication will be an entire message, not
- a stream of bytes. If a message has to be segmented, it will
- be delivered in units of segments or buffers, not bytes.
-
- * Multicast Capability
-
- Based on this discussion, we can suggest some of the key issues and
- problems in design of this protocol.
-
- * Choice of Addressable Entity
-
- What will be the addressable entity? It must be unique in
- space; must it be unique in time (even across system crashes) ?
-
- * Timeout Dynamics
-
- Timeouts must be the key to operation of this protocol.
- Experience with TCP has shown the need for dynamic selection of
- an appropriate timeout, since Internet delays range over four
- decimal orders of magnitude.
-
- However, the absence of connection setup and the
- typically-short duration of a single interaction seem to
- preclude the dynamic measurement of delays.
-
- * Multi-Packet Messages
-
- How can flow control be provided for multi-packet messages, to
- provide reasonable throughput over long-delay paths without
- overrun with short-delay paths, when there is no virtual
- circuit setup?
-
- * Implementation Efficiency
-
- The protocol should lend itself to efficient (which probably
- implies simple) implementations, so that hosts will be willing
- to use it over LAN's as well as for general Internet
- communication.
-
- We believe further study is needed on these questions.
-
- The reader may wonder: how is the proposed protocol related to an RPC
- (Remote Procedure Call) facility? The intent is that RPC facilities
- and message-passing IPC facilities will be built on top of the
- proposed transport layer. These higher-level mechanisms will need to
- address a number of additional issues, which are not relevant to the
- communication substrate:
-
-
- Braden [Page 8]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- 1. Application Interface
-
- This includes binding and stub generators.
-
- 2. Structured Data Encoding
-
- 3. Server Location and Binding
-
- 4. Authentication and Access Control
-
- 6. CONCLUSION
-
- Distributed processing and distributed data bases will underlie many
- of the future computer system research projects and applications
- based upon the Internet. As a result, transaction-based
- communication will be an increasingly important activity on the
- Internet. We claim that there is a pressing need for an appropriate
- transport protocol for transaction processing. In this memo, we have
- given examples to support this claim, and have outlined the service
- which such a new transport protocol would provide.
-
- This memo is based upon discussions within the New End-to-End
- Protocols taskforce, and it is a pleasure to acknowledge the
- participation and sagacity of the members of that group. I want to
- thank Dave Clark, an ex officio taskforce member, for his
- contribution to these discussions, and Robert Cole for very helpful
- suggestions.
-
- NOTES:
-
- [1] For the purposes of this RFC, in fact, the reader may consider
- "transport service" to be defined as that protocol layer which
- contains TCP and UDP, as in Figure 1 of RFC-791. Alternatively,
- we may use the ISO definition -- the transport service is the
- lowest layer providing end-to-end service which is essentially
- independent of the characteristics of the particular (Inter-)
- network used to support the communication.
-
- [2] This idea is implicit in the ISO definition of a transport
- service.
-
- [3] It would be reasonable for the name server definition to specify
- an upper bound on the size of a single query or response; e.g.,
- 2K bytes. This would imply (large) limits on the number of RR's
- that could be returned per response. If that limit is exceeded,
- we are doing something wrong!
-
-
-
- Braden [Page 9]
-
-
-
- RFC 955 September 1985
- Transaction Protocol
-
-
- REFERENCES
-
- BiNe84 Birrell, Andrew D. and Nelson, Bruce Jay, "Implementing
- Remote Procedure Calls". ACM TOCS, Vol. 2, No. 1, February
- 1984.
-
- ChDe85 Cheriton, David R. and Deering, Steven, "Host Groups: a
- Multicast Extension for Datagram Networks". To be presented
- to 9th Data Communication Symposium.
-
- Cher85 Cheriton, David R., "V Message Transaction Protocol".
- Private communication, July 1985.
-
- Cour81 Xerox Corp., "Courier: The Remote Procedure Call Protocol".
- XSIS 038112, Xerox Corp., Stamford, Conn., December 1981.
-
- Coop84 Cooper, Eric C., "Circus: a Replicated Procedure Call
- Facility". Proc. 4th Symposium on Reliability in
- Distributed Software and Database Systems, October 1984.
-
- Crow85 Crowcroft, Jon, "A Sequential Exchange Protocol". Internal
- Note 1688, Computer Science Department, University College
- London, June 1985.
-
- Gurw85 Gurwitz, Robert F., "Object Oriented Interprocess
- Communication in the Internet". Private communication,
- April 1985.
-
- Mill85 Miller, Trudy, "Internet Reliable Transaction Protocol --
- Functional and Interface Specification". RFC-938, February
- 1985.
-
- Shel85 Sheltzer, Alan B. , "Network Transparency in an Internetwork
- Environment", PhD Thesis, UCLA Department of Computer
- Science, July 1985.
-
- Wats81 Watson, Richard W., "Timer-based Mechanisms in Reliable
- Transport Protocol Connection Management". Computer
- Networks, Vol. 5, pp47-56, 1981 (also distributed as
- IEN-193).
-
-
-
-
-
-
-
-
-
- Braden [Page 10]
-
-